package com.ruoyi.web.controller.ring;


import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.ora.constant.BizConstants;
import com.ruoyi.ring.factory.AiFactory;
import com.ruoyi.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/ora/ring_food")
public class RingFoodController {

    @Autowired
    private ISysConfigService configService;

    @PostMapping("/add")
    public AjaxResult add(MultipartFile file)
    {

        if (file != null){
            try {
                // 上传文件路径
                String filePath = RuoYiConfig.getUploadPath();
                // 上传并返回新文件名称
                String fileName = FileUploadUtils.upload(filePath, file);
                //  TODO 数据库存这个  fileName

                String apiHost = configService.selectConfigByKey("ring.api.host");

                String s = AiFactory.build(BizConstants.AI_PLATFORM.getValue()).chatImageCompletions(
                        "请给出图片中食物的脂肪、蛋白质、碳水化合物含量，并以json格式返回，直接给出一个大概数值，单位g，json返回的时候不要包含单位g，不要给范围，直接取中间值就好。json格式为{\\\"fat\\\": \\\"脂肪\\\", \\\"protein\\\": \\\"蛋白质\\\", \\\"carbohydrate\\\": \\\"碳水化合物\\\"}\"",
                        apiHost + fileName);

                // TODO 返回示例：{"fat": "200", "protein": "150", "carbohydrate": "50"}

                System.out.println(s);

            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }

        return AjaxResult.success();
    }

}
